<?php
/**
 * 简单缓存模块
 * 提供低安全级别缓存使用规则
 * @author tom
 */
abstract class BaseModel
{
	/**
	 * 用户ID
	 *
	 * @var int
	 */
	protected $uId;

	/**
	 * 单例对象
	 */
	public static $singletonObjects = array();

	/**
	 * 数据
	 *
	 * @var array
	 */
	protected $data;

	/**
	 * 是否需要保存数据
	 *
	 * @var mixed //是或者需要保存的数据
	 */
	protected $dirtyData = false;

	protected function __construct( $userId )
	{
		$this->uId = $userId;
		$this->_init();
	}

	/**
	 * 初始化数据
	 * 先从缓存获取 , 然后从数据
	 * @param boolean  $initialize 是否初始化 微币 和好友总数
	 */
	private function _init()
	{
		if( !is_array( $this->data ) )
		{
			$this->loadFromDb();
		}
	}

	/**
	 * 从数据库中获取数据
	 * 子类实现
	 */
	protected function loadFromDb()
	{
	}

	/**
	 * 保存数据
	 */
	public function save()
	{
		if( $this->dirtyData )
		{
			$this->dirtyData = false;
		}
	}

	/**
	 * 获取数据
	 */
	public function getData()
	{
		return $this->data;
	}
}